package com.freemalll.merchant.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.freemalll.merchant.common.CommonEnum;
import com.freemalll.merchant.domain.dto.MerAttachDto;
import com.freemalll.merchant.domain.entity.MerAttach;
import com.freemalll.merchant.domain.vo.MerAttachCheckVO;
import com.freemalll.merchant.domain.vo.MerAttachVO;

import java.util.List;

/**
 * 服务层。
 *
 * @author songshixiong
 * @since 2025-05-22
 */
public interface MerAttachService extends IService<MerAttach> {


    /**
     * 查询附件的历史补件记录,组装成前端需要的格式数据
     *
     * @param merId
     */

    List<MerAttachDto> listHistoryByMerId(String merId);

    /**
     * 查询附件最新的结论,不要历史记录，用来判断是否有需要补件，以及未下通过结论的
     *
     * @param merId
     */
    List<MerAttachVO> getLatestAttachByMerId(String merId);

    /**
     * 编辑商户附件信息
     *
     * @param merId
     * @param imageUrl
     * @param businessPhotoType
     */
    void edit(String merId, String imageUrl, CommonEnum.businessPhotoType businessPhotoType, int attachType);


    /**
     * 查询待补件的商户附件信息
     *
     * @param merId
     */
    List<MerAttachDto> selectBuJianAttachList(String merId);


    List<MerAttachCheckVO> listCheckListByMerId(String merId);

    /**
     * 根据商户id和配置项名称查询单个商户附件
     *
     * @param merId
     * @param name
     * @return
     */
    String selectAttachByMerIdAndConfigCode(String merId, String name);

    /**
     * 根据商户id和配置项名称查询多个商户附件
     *
     * @param merId
     * @param name
     * @return
     */
    List<String> selectByMerIdAndConfigCode(String merId, String name);


    /**
     * 根据商户id和附件类型查询商户附件
     *
     * @param merId
     * @param attachType
     * @return
     */
    List<MerAttachDto> queryAttachListByOperate(String merId, int attachType);

    /**
     * 查询商户附件
     *
     * @param merId
     * @param list
     * @return
     */
    List<MerAttach> getLatestAttachByMerIdAndAttachType(String merId, List<Integer> list);

    /**
     * 批量编辑商户附件信息
     *
     * @param merId
     * @param venueContract
     * @param businessPhotoType
     * @param attachType
     */
    void batchEdit(String merId, List<String> venueContract, CommonEnum.businessPhotoType businessPhotoType, int attachType);
}
